﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RRHH.RRHH_Service;
using RRHH.SUNAT_Service;
using System.Threading;

namespace RRHH.Controllers
{
    public class TRegistroEFController : Controller
    {
        private RRHH.RRHH_Service.RRHHServiceClient serviceRRHH = new RRHH.RRHH_Service.RRHHServiceClient();
        private RRHH.SUNAT_Service.SUNATServiceClient serviceSUNAT = new RRHH.SUNAT_Service.SUNATServiceClient();
             
        //GET: 
        public ActionResult EnviarTRegistro()
        {
            return View("EnviarTRegistroForm", serviceRRHH.ListarIngresosPersonal());
        }

         //POST:
        [HttpPost]
        public ActionResult EnviarTRegistro(BEMaestroPersonal _BEMaestroPersonal)
        {
            if (ModelState.IsValid)
            {
               foreach (String key in Request.Form) {

                        String [] value ;
                        value = key.Split('|');

                        String codigoEmpleado;
                        Int32 idPersonal;

                        codigoEmpleado = value[1];
                        idPersonal = Convert.ToInt32(value[2]);

                        var checkbox = String.Empty; 
                        if (key.StartsWith("chk")) {

                            checkbox = Request.Form["" + key];
                            if (checkbox != "false") {
                              //  _BEMaestroPersonal.idPersonal.APEMATERNOEMPLEADO = "VERDADERO";
                                RRHH_Service.BEIngresoTRegistro _BEIngresoTRegistroRRHH = new RRHH_Service.BEIngresoTRegistro();
                                SUNAT_Service.BEIngresoTRegistro _BEIngresoTRegistroSunat = new SUNAT_Service.BEIngresoTRegistro();
                                                
                                _BEIngresoTRegistroRRHH = serviceRRHH.EnvioIngresoTRegistro(idPersonal,codigoEmpleado);

                                _BEIngresoTRegistroSunat.NUMERODOCUMENTO = _BEIngresoTRegistroRRHH.NUMERODOCUMENTO;
                                _BEIngresoTRegistroSunat.IDDOCIDENTIDAD = _BEIngresoTRegistroRRHH.IDDOCIDENTIDAD;
                                _BEIngresoTRegistroSunat.IDDEPDOMICILIO = _BEIngresoTRegistroRRHH.IDDEPDOMICILIO;
                                _BEIngresoTRegistroSunat.IDPROVDOMICILIO = _BEIngresoTRegistroRRHH.IDPROVDOMICILIO;
                                _BEIngresoTRegistroSunat.IDDISTDOMICILIO = _BEIngresoTRegistroRRHH.IDDISTDOMICILIO;
                                _BEIngresoTRegistroSunat.CODIGOCLASEPLANILLA = _BEIngresoTRegistroRRHH.CODIGOCLASEPLANILLA;
                                _BEIngresoTRegistroSunat.FECHAINGRESO = _BEIngresoTRegistroRRHH.FECHAINGRESO;
                                _BEIngresoTRegistroSunat.IDCATEGORIASEMPLEADO = _BEIngresoTRegistroRRHH.IDCATEGORIASEMPLEADO;
                                _BEIngresoTRegistroSunat.IDTIPOCONTRATO = _BEIngresoTRegistroRRHH.IDTIPOCONTRATO;
                                _BEIngresoTRegistroSunat.SALARIORECIBO = _BEIngresoTRegistroRRHH.SALARIORECIBO;
                        
                                serviceSUNAT.RegistrarIngreso(_BEIngresoTRegistroSunat);

                                BEMaestroPersonal _OBEMaestroPersonal = new BEMaestroPersonal();
                                _OBEMaestroPersonal.CODIGOEMPLEADO = codigoEmpleado;
                                _OBEMaestroPersonal.idPersonal = new BEPersonal();
                                _OBEMaestroPersonal.idPersonal.IDPERSONAL = idPersonal;

                                serviceRRHH.ActualizarEstadoMPTRegistro(_OBEMaestroPersonal);

                            }
                        }
                    }
               return View("EnviarTRegistroForm", serviceRRHH.ListarIngresosPersonal());
            }
            return View("EnviarTRegistroForm", serviceRRHH.ListarIngresosPersonal());
        }     
    }
}